//
//  SMHTeamView.swift
//  SMHCommerce
//
//  Created by lvzhao on 2020/5/29.
//  Copyright © 2020 lvzhao. All rights reserved.
//

import UIKit


class SMHTeamView: LZBaseView ,UITableViewDelegate,UITableViewDataSource{

    
    var viewModel = SMHTeamViewModel()
    
    override init(viewModel: LZBaseViewModel) {
        super.init(viewModel: viewModel)
        self.viewModel = viewModel as! SMHTeamViewModel
        setupUI()
        
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    
    //MARK: setupUI
    func setupUI()  {
        self.addSubview(self.tableView)
        self.tableView.snp.makeConstraints { (make) in
            make.edges.equalTo(0);
        }
        
        let headView = UIView()
        headView.backgroundColor = UIColorFromHex(rgbValue: 0xF2F2F2)
        headView.frame = CGRect(x: 0, y: 0, width: kScreenWidth, height: 10)
        self.tableView.tableHeaderView = headView
    
        self.tableView.reloadData()
        
    }
    
    //MARK: UITableViewDataSource
    func numberOfSections(in tableView: UITableView) -> Int {
        return 13
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        let index = section
        if self.viewModel.indexs.contains(index) {
            return 10;
        } else {
            return 0;
        }
        
    }
    
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let teamCell = tableView.dequeueReusableCell(withIdentifier: "SMHTeamCell") as! SMHTeamCell
        teamCell.modelObject = nil
        return teamCell
    }
    
    
    //MARK: UITableViewDelegate
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 60
    }
    


    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat{
        
        return 50
    }
    
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let sectionView = SMHTeamSectionView.init(viewModel: self.viewModel,index: section)
        sectionView.frame = CGRect(x: 0, y: 0, width: kScreenWidth, height: 50)
        sectionView.flodBtn.tag = section;
        sectionView.flodBtn.addTarget(self, action: #selector(teamFoldBtnClick), for: .touchUpInside)
        return sectionView
    }

    
    //MARK: 点击事假
    @objc func teamFoldBtnClick(button:UIButton) {
        
        let index = button.tag
        if self.viewModel.indexs.contains(index) {
                        
            if let ind = self.viewModel.indexs.firstIndex(of: index) {
                self.viewModel.indexs.remove(at: ind)
            }
            
        } else {
            self.viewModel.indexs.append(index)

        }
        
        self.tableView.beginUpdates()
        self.tableView.reloadSections([button.tag], with: .none)
        self.tableView.endUpdates()
    }
    
    
    

    //MARK: 懒加载
    
    lazy var tableView : LZBaseTableView = {
        let tableView = LZBaseTableView(frame: CGRect.zero, style: .plain)
        tableView.delegate = self
        tableView.dataSource = self
        tableView.separatorStyle = .none
        tableView.register(SMHTeamCell.self, forCellReuseIdentifier: "SMHTeamCell")
        return tableView
    }()
    
    
    
    
}
